package 第四章控制语句;
/*
    关于switch语句：
        1、switch语句也属于选择结构，也是分支语句
        2、switch语句的语法结构：

            switch(int或String类型的字面值或者变量){
            case    int或String类型的字面值或者变量：       //匹配成功则执行下面的语句
                java语句；
                ...
                break;                                  //如果没有break；则无论下一条case是否匹配，都会执行下一条case的Java语句
            case    int或String类型的字面值或者变量：       //直至遇到break，称为case穿透
                java语句；
                ...
                break;
            case    int或String类型的字面值或者变量：
                java语句；
                ...
                break;
            ...
            default:                                   //如果都不匹配则执行default下的java语句
                java语句;
                ...
            }

        3、switch语句的执行原理：
            switch后面的小括号当中的"数据"和case后面的"数据"进行一一匹配，匹配成功则分支执行。
            按照自上而下的顺序依次匹配。
        4、匹配成功的分支执行，分支当中最后有"break"；语句的话，整个switch语句终止。
        5、匹配成功的分支执行，分支当中没有"break"；语句的话，直接进入下一个分支执行（不进行匹配），
          这种现象被称为case穿透现象。（提供break可以避免穿透）
        6、所以分支都没有匹配成功的话，则执行default语句
        7、switch、case后面只能是int或者String类型的数据，不能探测其他类型。
            *当然byte、short、char、可以直接写在其后面，因为其可以自动转换为int类型
            （jdk7及其后的版本才支持）
        8、case可以合并：
            int i=10;
            switch(i){
                case 1;case 2;case 3;case 10;
                    System.out.println("abc");

            }
 */

@SuppressWarnings("ALL")
public class SwitchTest01 {
    public static void main(String[] args) {

        //long x = 2000L;                   //可以添加强制类型转换
        //switch ((int) x) {               //switch后的case不是必须的
        //}
        // switch (/*char byte short int string*/)   支持的变量格式
        /*
        一个完整的switch语句
         */
        java.util.Scanner s = new java.util.Scanner(System.in);
        System.out.print("please input number:");
        int num = s.nextInt();
        switch (num) {
            case 1:
                System.out.println("周一");
                break;
            case 2:
                System.out.println("周二");
                break;
            case 3:
                System.out.println("周三");
                break;
            case 4:
                System.out.println("周四");
                break;
            case 5:
                System.out.println("周五");
                break;
            case 6:
                System.out.println("周六");
                break;
            case 7:
                System.out.println("周日");
                break;
            default:
                System.out.println("please input other number!");
        }
        System.out.println("case穿透——————————————");
        System.out.print("please input number1:");
        java.util.Scanner s1 = new java.util.Scanner(System.in);
        int num1 = s1.nextInt();
        switch (num1) {
            case 1:
                System.out.println("周一");
                break;
            case 2:
                System.out.println("周二");
                break;

            case 3:

                System.out.println("周三");

                break;
            case 4:
                System.out.println("周四");
                break;
            case 5:
                System.out.println("周五");
                break;
            case 6:
                System.out.println("周六");
                break;
            case 7:
                System.out.println("周日");
                break;
            default:
                System.out.println("please input other number!");
        }
    }
}
